package minidb.drive.dbattrib;

import java.io.Serializable;
import java.util.*;
import static minidb.type.Const.*;
import minidb.drive.IndexScanner;
import minidb.record.*;
import minidb.type.fieldinfo;

public class DataBaseAttrib extends HashMap<String,TableAttrib> implements Serializable
{
	public void RetrieveDataBaseAttrib()
	{
		Map<String,TableInfo> tables=tablePage.table;
		for(String tn:tables.keySet())
		{
			Schema sma=tables.get(tn).schema();
			
			TableAttrib tAttrib=new TableAttrib();
			for(String fn:sma.fieldName())
			{
				fieldinfo finfo=sma.get(fn);
				
				FieldAttrib fAttrib=new FieldAttrib();
				fAttrib.type=finfo.type();
				fAttrib.length=finfo.length();
				IndexScanner iScanner=new IndexScanner(tn);
				fAttrib.hasIndex=iScanner.HasIndex(fn);
				fAttrib.isPK=iScanner.isPrimaryKey(fn);
				
				tAttrib.put(fn, fAttrib);
			}
			
			super.put(tn, tAttrib);
		}	
	}
}
